25. 印度对外贸易的探索性研究

贸易数据分析的重要性

对外贸易分析是理解国际经济格局的核心手段:

  • 贸易伙伴:识别主要进出口国及其贸易地位
  • 贸易趋势:了解贸易发展方向与周期变化
  • 政策制定:基于数据驱动的贸易政策决策
  • 产业结构:揭示经济结构与产业竞争力

数据准备:读取进出口数据

Listing 1
# 注:sk2018-2010_export.csv 和 sk2018-2010_import.csv 数据文件本地没有,但平台已经内置
# =============================================================================
# 题目:印度对外贸易数据读取与透视表构建
# =============================================================================
# 本代码块实现印度进出口贸易数据的读取和初步整理
# 通过透视表构建,将数据按国家和年份进行重排,便于后续趋势分析

# ==================== 导入数据分析与可视化库 ====================
import pandas as pd  # 导入Pandas库,用于数据表操作和分析
import numpy as np  # 导入NumPy库,用于数值计算
import matplotlib.pyplot as plt  # 导入Matplotlib库,用于绑图
from IPython.display import display, Markdown  # 导入显示工具,用于富文本输出

# ==================== 设置中文字体支持 ====================
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置绘图时的中文字体为黑体,避免中文显示为方框
plt.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题

# ==================== 读取进出口贸易数据 ====================
df_export = pd.read_csv('sk2018-2010_export.csv')  # 读取2010-2018年印度出口数据
df_import = pd.read_csv('sk2018-2010_import.csv')  # 读取2010-2018年印度进口数据

print('出口数据形状:', df_export.shape)  # 输出出口数据集的行数和列数
print('进口数据形状:', df_import.shape)  # 输出进口数据集的行数和列数

数据准备:构建透视表

Listing 2
# ==================== 构建出口透视表 ====================
exp_country_table = pd.pivot_table(
    df_export,  # 以出口数据为源数据
    values='value',  # 透视表的值为贸易额(value字段)
    index='country',  # 行索引为国家,便于观察各国家趋势
    columns='year'  # 列为年份,便于观察时间序列变化
)

# ==================== 构建进口透视表 ====================
imp_country_table = pd.pivot_table(
    df_import,  # 以进口数据为源数据
    values='value',  # 透视表的值为贸易额(value字段)
    index='country',  # 行索引为国家
    columns='year'  # 列为年份
)

print('出口透视表:')
print(exp_country_table.head())  # 显示出口透视表的前5行,预览数据结构

⭐ 出口趋势分析(平台任务)

Listing 3
# 注:sk2018-2010_export.csv 和 sk2018-2010_import.csv 数据文件本地没有,但平台已经内置
# ⚠️ 平台原始代码 - 请原样输入至教学平台(注释除外),平台才会判定答案正确
import pandas as pd  # 导入Pandas数据分析库
import numpy as np  # 导入NumPy数值计算库
import matplotlib.pyplot as plt  # 导入Matplotlib绑图库
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体作为默认字体以支持中文
plt.rcParams['axes.unicode_minus'] = False # 正确显示负号
from IPython.display import display, Markdown  # 导入display,模块

#定义加粗显示函数
def bold(string):
  display(Markdown(string))  # 以Markdown格式渲染输出描述性文本
   
#读取进出口数据
df_export = pd.read_csv('sk2018-2010_export.csv')
df_import = pd.read_csv('sk2018-2010_import.csv')  # 从CSV文件读取数据存入df_import
# 创建透视表exp_country_table
exp_country_table = pd.pivot_table(df_export, values = 'value', index = 'country', columns = 'year')
# 创建透视表imp_country_table
imp_country_table = pd.pivot_table(df_import, values = 'value', index = 'country', columns = 'year')

bold('**2010年至2018年印度对外贸易出口方向的趋势**')  # 以粗体Markdown格式输出:2010年至2018年印度对外贸易出口方向的趋势
plt.figure(figsize=(15,10))  # 创建图形画布
 
plt.subplot(221)  # 选择子图位置
g = exp_country_table.loc["U S A"].plot(color='purple', linewidth=3)  # 按标签索引提取数据
g.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g.set_title('对美国出口的趋势', size = 15)  # 设置图表标题

plt.subplot(222)  # 选择子图位置
g1 = exp_country_table.loc["U ARAB EMTS"].plot(color='purple', linewidth=3)  # 按标签索引提取数据
g1.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g1.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g1.set_title('对阿联酋出口的趋势', size = 15)  # 设置图表标题

plt.subplot(223)  # 选择子图位置
g2 = exp_country_table.loc["CHINA P RP"].plot(color='purple', linewidth=3)  # 按标签索引提取数据
g2.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g2.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g2.set_title('对中国出口的趋势', size = 15)  # 设置图表标题

plt.subplot(224)  # 选择子图位置
g3 = exp_country_table.loc["HONG KONG"].plot(color='purple', linewidth=3)  # 按标签索引提取数据
g3.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g3.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g3.set_title('对香港出口的趋势', size = 15)  # 设置图表标题

plt.subplots_adjust(hspace = 0.4)  # 调整子图间距
plt.savefig("5.png")  # 保存图形至文件

bold('**2010年至2018年印度对外贸易进口方向的趋势**')  # 以粗体Markdown格式输出:2010年至2018年印度对外贸易进口方向的趋势
plt.figure(figsize=(15,10))  # 创建图形画布
 
plt.subplot(221)  # 选择子图位置
g = imp_country_table.loc["U S A"].plot(color='coral', linewidth=3)  # 按标签索引提取数据
g.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g.set_title('从美国进口的趋势', size = 15)  # 设置图表标题

plt.subplot(222)  # 选择子图位置
g1 = imp_country_table.loc["U ARAB EMTS"].plot(color='coral', linewidth=3)  # 按标签索引提取数据
g1.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g1.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g1.set_title('从阿联酋进口的趋势', size = 15)  # 设置图表标题

plt.subplot(223)  # 选择子图位置
g2 = imp_country_table.loc["CHINA P RP"].plot(color='coral', linewidth=3)  # 按标签索引提取数据
g2.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g2.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g2.set_title('从中国进口的趋势', size = 15)  # 设置图表标题

plt.subplot(224)  # 选择子图位置
g3 = imp_country_table.loc["SAUDI ARAB"].plot(color='coral', linewidth=3)  # 按标签索引提取数据
g3.set_ylabel('USD (millions)', fontsize = 12)  # 设置Y轴标签
g3.set_xlabel('Year', fontsize = 12)  # 设置X轴标签
g3.set_title('从沙特阿拉伯进口的趋势', size = 15)  # 设置图表标题

plt.subplots_adjust(hspace = 0.4)  # 调整子图间距
plt.savefig("6.png")  # 保存图形至文件

进口趋势分析详解

Listing 4
# 注:该代码块依赖的数据来自上方平台任务代码块,因其未执行,本块也无法执行
bold('**2010年至2018年印度对外贸易进口方向的趋势**')  # 显示章节标题

# ==================== 创建2x2子图布局 ====================
fig, axes = plt.subplots(2, 2, figsize=(15, 10))  # 创建4个子图,用于展示4个主要进口来源国的趋势

# ==================== 绘制从美国进口趋势图 ====================
imp_country_table.loc['U S A'].plot(  # 选择从美国进口的数据
    ax=axes[0, 0],  # 绘制在第一行第一列
    color='coral',  # 设置线条颜色为珊瑚色,与出口的紫色形成对比
    linewidth=3  # 设置线宽
)
axes[0, 0].set_ylabel('USD (millions)', fontsize=12)  # 设置y轴标签
axes[0, 0].set_xlabel('Year', fontsize=12)  # 设置x轴标签
axes[0, 0].set_title('从美国进口的趋势', size=15)  # 设置子图标题

# ==================== 绘制从阿联酋进口趋势图 ====================
imp_country_table.loc['U ARAB EMTS'].plot(  # 选择从阿联酋进口的数据
    ax=axes[0, 1],  # 绘制在第一行第二列
    color='coral',  # 使用珊瑚色,保持一致性
    linewidth=3  # 设置线宽
)
axes[0, 1].set_ylabel('USD (millions)', fontsize=12)  # 设置y轴标签
axes[0, 1].set_xlabel('Year', fontsize=12)  # 设置x轴标签
axes[0, 1].set_title('从阿联酋进口的趋势', size=15)  # 设置子图标题

# ==================== 绘制从中国进口趋势图 ====================
imp_country_table.loc['CHINA P RP'].plot(  # 选择从中国进口的数据
    ax=axes[1, 0],  # 绘制在第二行第一列
    color='coral',  # 使用珊瑚色
    linewidth=3  # 设置线宽
)
axes[1, 0].set_ylabel('USD (millions)', fontsize=12)  # 设置y轴标签
axes[1, 0].set_xlabel('Year', fontsize=12)  # 设置x轴标签
axes[1, 0].set_title('从中国进口的趋势', size=15)  # 设置子图标题

# ==================== 绘制从沙特阿拉伯进口趋势图 ====================
imp_country_table.loc['SAUDI ARAB'].plot(  # 选择从沙特阿拉伯进口的数据
    ax=axes[1, 1],  # 绘制在第二行第二列
    color='coral',  # 使用珊瑚色
    linewidth=3  # 设置线宽
)
axes[1, 1].set_ylabel('USD (millions)', fontsize=12)  # 设置y轴标签
axes[1, 1].set_xlabel('Year', fontsize=12)  # 设置x轴标签
axes[1, 1].set_title('从沙特阿拉伯进口的趋势', size=15)  # 设置子图标题

# ==================== 调整子图间距并显示 ====================
plt.subplots_adjust(hspace=0.4)  # 设置子图垂直间距
plt.tight_layout()  # 自动调整布局
plt.show()  # 显示图形

出口趋势结论

印度出口趋势(2010-2018)

  • 对美国出口稳步增长,美国是印度最大出口目的地
  • 对阿联酋出口有所波动,受能源价格影响
  • 对中国出口增长较快,双边贸易日益密切
  • 对香港出口受转口贸易影响

进口趋势结论

印度进口趋势(2010-2018)

  • 从中国进口持续增长,中国是印度最大进口来源国
  • 从美国进口稳步上升,涵盖高科技及军事装备
  • 能源进口(阿联酋、沙特)受国际油价波动显著
  • 贸易逆差问题值得关注

本章小结

  • 透视表(pivot_table)是贸易数据分析的核心工具
  • 多子图布局(subplot)可同时对比多国趋势
  • 印度贸易格局:美国、中国、阿联酋是核心伙伴
  • 出口与进口结构存在显著差异